#ifndef _CLI_DEAL_H_
#define _CLI_DEAL_H_

#include "camera_config.h"
#include "sensor_common.h"

typedef struct _scan_para_t {
    regval_list ir;
    regval_list spk;
    regval_list ov9282[3];      /* expoH/expoL/gain */
    uint32_t step;
    uint32_t count;
} scan_para_t;

typedef struct _strobetime_para_t {
    regval_list ov9282[3];
    regval_list ov9282_strobe[4];
} strobetime_para_t;

typedef enum
{
    SCAN_PARA_NO_NEED_INC = 0,
    SCAN_PARA_NEED_INC = 1,
} scan_cfg_t;

typedef enum
{
    TRAV_PARA_NO_NEED_CHG = 0,
    TRAV_PARA_NEED_CHG = 1,
} trav_cfg_t;

typedef enum
{
    STROBE_PARA_NO_NEED_CHG = 0,
    STROBE_PARA_NEED_CHG = 1,
} strobe_cfg_t;

// typedef enum
// {
//     SNAPSHOT_STOP = 0,
//     SNAPSHOT_START = 1,
// } snaptsk_stat_t;


extern scan_para_t scan_para_list;
extern scan_cfg_t scan_cfg;
extern trav_cfg_t trav_cfg;
extern strobe_cfg_t strobe_cfg;
extern strobetime_para_t strobetime_para;
extern regval_list ov9282_cfg_info[1];
extern volatile uint32_t g_ir_mode;

int img_cli_register(void);
void print_scan_para(void);
void pack_scan_para_list(uint8_t *buf);
void led_current_command(char *outbuf, int len, int argc, char **argv);
void para_scan_command(char *outbuf, int len, int argc, char **argv);
void para_set_command(char *outbuf, int len, int argc, char **argv);
void snapshot_command(char *outbuf, int len, int argc, char **argv);
void strobetime_command(char *outbuf, int len, int argc, char **argv);
void ov9282_command_usage(const char *prog);



#endif